home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib12.dsk
/
STEP DISASSEMBLER.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
1KB
|
44 lines
10 REM **********************
11 REM * STEP DISASSEMBLER *
12 REM * BY LOU PARADA *
13 REM * COPYRIGHT (C) 1982 *
14 REM * BY MICRO-SPARC INC *
15 REM * LINCOLN, MA. 01773 *
16 REM **********************
20 HOME : POKE 35,21: VTAB 8
30 INPUT "ENTER BEGINNING ADDRESS IN HEX =$";AD$
40 LG = LEN(AD$)
50 IF LG = 0 OR LG >4 GOTO 180
60 DIM DI$(4): READ DI$(1),DI$(2),DI$(3),DI$(4): DATA 0,0,0,0
70 X = 4:Y = LG
80 FOR I = 1 TO LG
90 DI$(X) = MID$ (AD$,Y,1)
100 X = X -1:Y = Y -1
110 NEXT I
120 REM EDIT FOR VALID RANGE - HEX 0 THRU F
130 FOR I = 1 TO 4
140 V = ASC(DI$(I))
150 IF V <48 OR V >70 GOTO 180
160 IF V >57 AND V <65 GOTO 180
170 NEXT : GOTO 200
180 PRINT "ERROR IN HEX ADDRESS =$";AD$: PRINT "HIT ANY KEY TO TRY AGAIN": GET A$: RUN
190 REM CONVERT HEX ADDR TO DECIMAL
200 FOR I = 4 TO 1 STEP -1
210 V = ASC(DI$(I))
220 IF V >64 THEN V = V -7:
230 V = V -48
240 DE = DE +(V *(16 ^P)):P = P +1: NEXT
250 PRINT : PRINT TAB( 19);"DECIMAL ADDR=";DE
260 HI = INT(DE/256)
270 LO = DE -(HI *256)
280 REM LOAD MACHINE LANGUAGE
290 LA = 36864: REM LOAD ADDR AT $9000
300 LB = 06: REM LOW-ORDER ADDR
310 HB = 07: REM HI-ORDER ADDR
320 POKE 0 +LB,LO: POKE 0 +HB,HI
330 FOR I = LA TO LA +25: READ IN: POKE 0 +I,IN: NEXT
340 DATA 165,6,133,58,165,7,133,59,169,1,32,99,254,173,0,192,16,251,141,16,192,201,155,208,239,96
350 VTAB 23
360 PRINT "HIT ANY KEY TO STEP OR (ESC) TO QUIT": VTAB 21
370 CALL LA
380 POKE 35,23: HOME : END